#ifndef DETERMINE_DRIVE_COMMAND_H
#define DETERMINE_DRIVE_COMMAND_H

#include <opencv/cv.h>

#include "robot_structures.h"

struct DriveCommand {
  DriveDirection dir;
  int speed;
};

/**
 * Determines the appropriate drive command for the current state using 
 * proportional control.
 *
 * Note that this method returns a DriveCommand struct.
 */
DriveCommand determineDriveCommand2(RobotOrientation, cv::Point fruit);

/**
 * Determines the appropriate drive command for the current state using a
 * simple turn-and-drive algorithm.
 *
 * Note that this method returns a DriveDirection enum value.
 */
DriveDirection determineDriveCommand(RobotOrientation, cv::Point fruit,
		double threshold = 5);

DriveDirection determineDriveCommand3(RobotOrientation, cv::Point fruit);

#endif